package com.jushu.storbox.view.mdmview;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.ProgressBar;

public class TextProgressBar extends ProgressBar {
	private String mProgressText;
	private Paint mPaint;
	private Rect mRect;
	private Context mContext;
//	private String mLoadingNoti = "";
//	private Timer mTimer;
//	private boolean isLocaleLanguageCN;
//	private String[] mStrings = { ".", "..", "..." };
//	public static final String NOT_CN_LOADING = "Loading";
//	private Handler mHandler;
//	private Paint mLoadingPaint;
//	private int x1;
//	private int y1;

	public TextProgressBar(Context context) {
		this(context, null);
	}

//	private void initHanlder() {
//		mHandler = new Handler() {
//			@Override
//			public void handleMessage(Message msg) {
//				// TODO Auto-generated method stub
//				super.handleMessage(msg);
//				switch (msg.what) {
//				case 0:
//					invalidate();
//					break;
//
//				default:
//					break;
//				}
//			}
//		};
//
//	}

//	private void initLoadNoti() {
//		isLocaleLanguageCN = PublicTools.isLocaleLanguageCN();
//		mTimer = new Timer();
//		mTimer.schedule(new TimerTask() {
//			int i;
//			int  flag = 3;
//			int old = 3;
//
//			@Override
//			public void run() {
//				if (isLocaleLanguageCN) {
//					flag = 1;
//					mLoadingNoti = CN_LOADING;
//				} else {
//					flag = 0;
//					mLoadingNoti = NOT_CN_LOADING;
//				}
//				if(old == 3){
//					old = flag;
//				}else{
//					if(old != flag){
//						x1 = 0;
//						y1 = 0;
//						old = flag;
//					}
//				}
//				mLoadingNoti = mLoadingNoti + mStrings[i % 3];
//				i++;
//				mHandler.sendEmptyMessage(0);
//			}
//		}, 0, 500);
//
//	}

	public TextProgressBar(Context context, AttributeSet attrs) {
		super(context, attrs);
		mContext = context;
		initPaint();
//		initHanlder();
//		initLoadNoti();
	}

	public TextProgressBar(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		mContext = context;
		initPaint();
//		initHanlder();
//		initLoadNoti();
	}

	private void initPaint() {
		mPaint = new Paint();
		mPaint.setColor(Color.WHITE);
		mPaint.setTextSize(20);
//		mLoadingPaint = new Paint();
//		mLoadingPaint.setAntiAlias(true);
//		mLoadingPaint.setColor(Color.WHITE);
//		mLoadingPaint.setTextSize(25);
	}

	@Override
	public synchronized void setProgress(int progress) {
//		if (progress >= 100) {
//			mTimer.cancel();
//		}
//		mProgressText = (float) progress / (float) getMax() * 100 + "%";
		mProgressText = progress + "%";
		super.setProgress(progress);
		invalidate();
	}

	public void setProgressTextPaint(Paint paint) {
		mPaint = paint;
	}

//	public void setIsLocaleLanguageCN(boolean is) {
//		if (is) {
//			isLocaleLanguageCN = is;
//		} else {
//			isLocaleLanguageCN = false;
//		}
//	}

//	public void clear() {
//		if (mTimer != null) {
//			mTimer.cancel();
//			mTimer = null;
//		}
//	}

	@Override
	protected synchronized void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		if (mRect == null) {
			mRect = new Rect();
		}
		mPaint.getTextBounds(mProgressText, 0, mProgressText.length(), mRect);
		int x = getWidth() / 2 - mRect.centerX();
		int y = getHeight() / 2 - mRect.centerY();
		canvas.drawText(mProgressText, x, y, mPaint);
//		Rect rect = new Rect();
//		mLoadingPaint.getTextBounds(mLoadingNoti, 0, mLoadingNoti.length(),
//				rect);
//		if (x1 == 0) {
//			x1 = getWidth() / 2 - rect.centerX();
//		}
//		
//		canvas.save();
////		canvas.clipRect(rect);
//		canvas.scale(2, 2);
//		canvas.translate(0, 30);
//		
//		if (y1 == 0) {
//			y1 = getHeight() ;
//		}
//		canvas.drawText(mLoadingNoti, x1, y1, mLoadingPaint);
//		canvas.restore();
		
	}
	
//	@Override
//	protected synchronized void onMeasure(int widthMeasureSpec,
//			int heightMeasureSpec) {
//		// TODO Auto-generated method stub
//		super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//	}
//	
//	@Override
//	protected void onLayout(boolean changed, int left, int top, int right,
//			int bottom) {
//		// TODO Auto-generated method stub
//		super.onLayout(changed, left, top, right, bottom);
//	}
}
